package usj.pop3.server.comandos;

import usj.pop3.server.ComandoPop3;
import usj.pop3.server.SesionCliente;

public class CmdPass implements ComandoPop3 {
	public static String MSG_ERR_LOGIN_FAILED = "-ERR Login failed.";
	public static String MSG_OK_USER_LOGGED_IN = "+OK User logged in.";

    public String ejecutar(SesionCliente sesionCliente, String[] argumentos) {
    	String res = MSG_ERR_LOGIN_FAILED;
    	if (sesionCliente.getEstado() == SesionCliente.Estados.ESPERANDOPASS) {
    		if (argumentos.length > 1 && argumentos[1] != null && argumentos[1].length() > 0) {
	    		String pass = argumentos[1];
				if (sesionCliente.compruebaPassword(sesionCliente.getUsuario(), pass)) {
					//usuario conocido y password correcto! via libre!
					sesionCliente.setEstado(SesionCliente.Estados.AUTENTIFICADO);
					res = MSG_OK_USER_LOGGED_IN;
				}
			} else {
				res = MSG_ERR_LOGIN_FAILED;
			}
    	} else if (sesionCliente.getEstado() == SesionCliente.Estados.AUTENTIFICADO) {
    		res = "-ERR can't switch users.";
    	}
		return res;
    }
    public ComandoPop3 factory() {
    	return new CmdPass();
    }
}